Measurement exploratory data analysis
from tabulate import tabulate
from IPython.display import Markdown, HTML
import matplotlib.pylab as plt
from typing import List, Tuple
import pandas as pd
import numpy as np
from scipy.signal import find_peaks
from scipy.signal import butter, lfilter
from tsfel.feature_extraction.features import fundamental_frequency
import os
import sys
sys.path.append('../../')
from feature import mafaulda as src
from feature import discovery as fdiscovery
pd.set_option("display.notebook_repr_html", False)
Define data sources
DIR = '../../air_conditioning/'
file_list = [
DIR + 'excool_digitalis/high_pressure_pump_40percent__1.tsv',
DIR + 'excool_digitalis/high_pressure_pump_40percent__2.tsv',
DIR + 'excool_digitalis/high_pressure_pump_40percent_speed_up__3.tsv',
DIR + 'excool_digitalis/high_pressure_pump_80percent__4.tsv',
DIR + 'shc2/compressor_shc2_klima4_bad.tsv',
DIR + 'shc2/compressor_shc2_klima5_good.tsv',
DIR + 'vertiv_digitalis/compressor_top_1.tsv',
DIR + 'vertiv_digitalis/compressor_top_2.tsv',
DIR + 'vertiv_digitalis/compressor_top_3.tsv',
DIR + 'vertiv_digitalis/compressor_base.tsv',
DIR + 'vertiv_digitalis/compressor_side.tsv'
]
T_WAVEFORM = 5
T_SEC = T_WAVEFORM
NFFT = 512
DATASET = []
Import dataset
Fs = 1160 # 1160 Hz +/-150 Hz (1020 - 1340 Hz)
for filename in file_list:
ts = pd.read_csv(filename, delimiter='\t', index_col=False, header=None, names=['x', 'y', 'z'])
# Calculate amplitude in m/s^2 Beaglebone Black ADC and ADXL335 resolution (VIN 1.8V, 12bits)
for dim in ts.columns:
ts[dim] = ts[dim] * (1800 / 4096) # ADC to mV
ts[dim] = (ts[dim] / 180) * 9.81 # mV to m/s^2 (180 mV/g)
ts[dim] -= ts[dim].mean()
ts['t'] = ts.index * (1 / Fs)
ts.set_index('t', inplace=True)
DATASET.append((os.path.basename(filename), ts))
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ts.info()
print()
high_pressure_pump_40percent__1.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38832 entries, 0.0 to 33.475 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38832 non-null float64 1 y 38832 non-null float64 2 z 38832 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
high_pressure_pump_40percent__2.tsv
<class 'pandas.core.frame.DataFrame'> Index: 59014 entries, 0.0 to 50.873275862068965 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 59014 non-null float64 1 y 59014 non-null float64 2 z 59014 non-null float64 dtypes: float64(3) memory usage: 1.8 MB
high_pressure_pump_40percent_speed_up__3.tsv
<class 'pandas.core.frame.DataFrame'> Index: 37931 entries, 0.0 to 32.69827586206897 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 37931 non-null float64 1 y 37931 non-null float64 2 z 37931 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
high_pressure_pump_80percent__4.tsv
<class 'pandas.core.frame.DataFrame'> Index: 18550 entries, 0.0 to 15.99051724137931 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 18550 non-null float64 1 y 18550 non-null float64 2 z 18550 non-null float64 dtypes: float64(3) memory usage: 579.7 KB
compressor_shc2_klima4_bad.tsv
<class 'pandas.core.frame.DataFrame'> Index: 46205 entries, 0.0 to 39.83103448275862 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 46205 non-null float64 1 y 46205 non-null float64 2 z 46205 non-null float64 dtypes: float64(3) memory usage: 1.4 MB
compressor_shc2_klima5_good.tsv
<class 'pandas.core.frame.DataFrame'> Index: 34394 entries, 0.0 to 29.64913793103448 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 34394 non-null float64 1 y 34394 non-null float64 2 z 34394 non-null float64 dtypes: float64(3) memory usage: 1.0 MB
compressor_top_1.tsv
<class 'pandas.core.frame.DataFrame'> Index: 21039 entries, 0.0 to 18.136206896551723 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 21039 non-null float64 1 y 21039 non-null float64 2 z 21039 non-null float64 dtypes: float64(3) memory usage: 657.5 KB
compressor_top_2.tsv
<class 'pandas.core.frame.DataFrame'> Index: 13585 entries, 0.0 to 11.710344827586207 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 13585 non-null float64 1 y 13585 non-null float64 2 z 13585 non-null float64 dtypes: float64(3) memory usage: 424.5 KB
compressor_top_3.tsv
<class 'pandas.core.frame.DataFrame'> Index: 18491 entries, 0.0 to 15.939655172413794 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 18491 non-null float64 1 y 18491 non-null float64 2 z 18491 non-null float64 dtypes: float64(3) memory usage: 577.8 KB
compressor_base.tsv
<class 'pandas.core.frame.DataFrame'> Index: 13447 entries, 0.0 to 11.591379310344827 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 13447 non-null float64 1 y 13447 non-null float64 2 z 13447 non-null float64 dtypes: float64(3) memory usage: 420.2 KB
compressor_side.tsv
<class 'pandas.core.frame.DataFrame'> Index: 22793 entries, 0.0 to 19.648275862068964 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 22793 non-null float64 1 y 22793 non-null float64 2 z 22793 non-null float64 dtypes: float64(3) memory usage: 712.3 KB
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
display(tabulate(ts.describe(), headers='keys', tablefmt='html'))
high_pressure_pump_40percent__1.tsv
| x | y | z | |
|---|---|---|---|
| count | 38832 | 38832 | 38832 |
| mean | -5.91039e-15 | -7.28292e-15 | -3.52325e-15 |
| std | 0.156233 | 0.269068 | 0.088905 |
| min | -1.97741 | -1.71713 | -0.337432 |
| 25% | -0.0853405 | -0.184319 | -0.0500295 |
| 50% | 0.0104603 | 0.00728275 | -0.00212907 |
| 75% | 0.106261 | 0.174934 | 0.0457713 |
| max | 0.705016 | 1.10899 | 0.428974 |
high_pressure_pump_40percent__2.tsv
| x | y | z | |
|---|---|---|---|
| count | 59014 | 59014 | 59014 |
| mean | -4.19614e-15 | 4.07935e-15 | -8.59432e-15 |
| std | 0.0943096 | 0.197273 | 0.0690056 |
| min | -0.418335 | -0.851503 | -0.275299 |
| 25% | -0.0590825 | -0.132997 | -0.0357975 |
| 50% | -0.0111821 | 0.010704 | -0.0118473 |
| 75% | 0.0606685 | 0.130455 | 0.0360531 |
| max | 0.372021 | 0.72921 | 0.251605 |
high_pressure_pump_40percent_speed_up__3.tsv
| x | y | z | |
|---|---|---|---|
| count | 37931 | 37931 | 37931 |
| mean | 4.76105e-15 | 3.5367e-15 | 4.15412e-15 |
| std | 0.850667 | 0.407354 | 0.303165 |
| min | -2.90341 | -1.83915 | -0.989876 |
| 25% | -0.388635 | -0.23449 | -0.151619 |
| 50% | 0.0664185 | 0.00501154 | -0.0318681 |
| 75% | 0.30592 | 0.244513 | 0.111833 |
| max | 2.50934 | 1.84918 | 1.11774 |
high_pressure_pump_80percent__4.tsv
| x | y | z | |
|---|---|---|---|
| count | 18550 | 18550 | 18550 |
| mean | -2.68742e-15 | -2.5005e-15 | 8.80077e-15 |
| std | 0.937496 | 0.615358 | 0.370609 |
| min | -2.89281 | -2.59842 | -1.02679 |
| 25% | -0.641493 | -0.418954 | -0.284332 |
| 50% | 0.0530623 | 0.0121494 | -0.0208799 |
| 75% | 0.579967 | 0.419303 | 0.242572 |
| max | 2.59178 | 2.38322 | 1.08083 |
compressor_shc2_klima4_bad.tsv
| x | y | z | |
|---|---|---|---|
| count | 46205 | 46205 | 46205 |
| mean | 2.34361e-16 | -2.87923e-15 | 8.44255e-15 |
| std | 0.0839049 | 0.0752622 | 0.190291 |
| min | -0.395752 | -0.459668 | -1.17776 |
| 25% | -0.0604496 | -0.0285645 | -0.123954 |
| 50% | -0.0125492 | -0.00461432 | -0.00420275 |
| 75% | 0.0593014 | 0.0432861 | 0.115548 |
| max | 0.394604 | 0.450439 | 1.09751 |
compressor_shc2_klima5_good.tsv
| x | y | z | |
|---|---|---|---|
| count | 34394 | 34394 | 34394 |
| mean | 5.22877e-16 | 3.73079e-15 | 5.67769e-15 |
| std | 0.105077 | 0.230046 | 0.392763 |
| min | -0.426641 | -0.571587 | -1.26612 |
| 25% | -0.0673884 | -0.164434 | -0.236258 |
| 50% | 0.0044622 | 0.00321782 | 0.00324429 |
| 75% | 0.0523626 | 0.170869 | 0.218796 |
| max | 0.579267 | 0.625923 | 1.2726 |
compressor_top_1.tsv
| x | y | z | |
|---|---|---|---|
| count | 21039 | 21039 | 21039 |
| mean | -1.39211e-15 | 1.57009e-15 | 5.34959e-15 |
| std | 1.32462 | 1.42278 | 0.39025 |
| min | -3.41267 | -3.87311 | -0.928501 |
| 25% | -0.945797 | -1.04699 | -0.329746 |
| 50% | 0.0361615 | 0.126574 | -0.0183938 |
| 75% | 1.06602 | 0.964831 | 0.316909 |
| max | 2.86228 | 3.40775 | 1.25097 |
compressor_top_2.tsv
| x | y | z | |
|---|---|---|---|
| count | 13585 | 13585 | 13585 |
| mean | -6.58815e-15 | 2.22394e-15 | 1.42161e-15 |
| std | 1.35929 | 1.4691 | 0.372723 |
| min | -3.63639 | -4.11425 | -0.88664 |
| 25% | -0.953964 | -1.07258 | -0.311836 |
| 50% | 0.0519447 | 0.148884 | -0.0244333 |
| 75% | 1.10575 | 1.01109 | 0.286919 |
| max | 2.94992 | 3.54981 | 1.43653 |
compressor_top_3.tsv
| x | y | z | |
|---|---|---|---|
| count | 18491 | 18491 | 18491 |
| mean | 5.09573e-15 | 6.55939e-16 | -8.19405e-15 |
| std | 1.61442 | 1.31795 | 0.85044 |
| min | -3.85041 | -3.72399 | -3.17339 |
| 25% | -1.16799 | -0.849971 | -0.514919 |
| 50% | -0.186031 | 0.155937 | 0.0119848 |
| 75% | 1.27493 | 0.850493 | 0.490989 |
| max | 3.7418 | 3.00601 | 2.52676 |
compressor_base.tsv
| x | y | z | |
|---|---|---|---|
| count | 13447 | 13447 | 13447 |
| mean | -2.2716e-15 | -7.28139e-16 | 4.6156e-15 |
| std | 1.30529 | 2.3902 | 0.733422 |
| min | -2.49659 | -5.04931 | -1.68723 |
| 25% | -1.15538 | -1.95974 | -0.513669 |
| 50% | 0.0181831 | 0.243679 | 0.0850858 |
| 75% | 1.09594 | 2.09982 | 0.516189 |
| max | 2.62875 | 4.29126 | 1.6179 |
compressor_side.tsv
| x | y | z | |
|---|---|---|---|
| count | 22793 | 22793 | 22793 |
| mean | 1.78719e-15 | 4.33564e-15 | -2.57807e-15 |
| std | 1.14264 | 1.66626 | 1.30827 |
| min | -3.21371 | -3.61176 | -2.85124 |
| 25% | -0.67499 | -1.38439 | -0.935224 |
| 50% | -0.0522853 | -0.186877 | -0.192768 |
| 75% | 0.953623 | 1.32199 | 0.908941 |
| max | 2.31878 | 4.17206 | 3.30396 |
Time domain waveform
axis = ['x', 'y', 'z']
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ax = ts[axis].plot(figsize=(20, 8), grid=True, subplots=True)
for i, axname in enumerate(axis):
ax[i].set_xlabel('Time [s]')
ax[i].set_ylabel(f'Amplitude ({axname}) [m/s^2]')
plt.show() # plt.savefig('waveform.png')
high_pressure_pump_40percent__1.tsv
high_pressure_pump_40percent__2.tsv
high_pressure_pump_40percent_speed_up__3.tsv
high_pressure_pump_80percent__4.tsv
compressor_shc2_klima4_bad.tsv
compressor_shc2_klima5_good.tsv
compressor_top_1.tsv
compressor_top_2.tsv
compressor_top_3.tsv
compressor_base.tsv
compressor_side.tsv
Time domain waveform zoom detail
axis = ['x', 'y', 'z']
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ax = (ts[axis].iloc[int(T_WAVEFORM*Fs):int(T_WAVEFORM*Fs)+Fs]
.plot(figsize=(20, 10), grid=True, subplots=True))
for i, axname in enumerate(axis):
ax[i].set_xlabel('Time [s]')
ax[i].set_ylabel(f'Amplitude ({axname}) [m/s^2]')
plt.show() # plt.savefig('waveform_zoom.png')
high_pressure_pump_40percent__1.tsv
high_pressure_pump_40percent__2.tsv
high_pressure_pump_40percent_speed_up__3.tsv
high_pressure_pump_80percent__4.tsv
compressor_shc2_klima4_bad.tsv
compressor_shc2_klima5_good.tsv
compressor_top_1.tsv
compressor_top_2.tsv
compressor_top_3.tsv
compressor_base.tsv
compressor_side.tsv
def spectogram(x):
fig, ax = plt.subplots(figsize=(15, 4))
cmap = plt.get_cmap('inferno')
pxx, freqs, t, im = plt.specgram(
x, NFFT=NFFT, Fs=Fs,
detrend='mean',
mode='magnitude', scale='dB',
cmap=cmap, vmin=-60
)
fig.colorbar(im, aspect=20, pad=0.04)
ax.set_xlabel('Time [s]')
ax.set_ylabel('Frequency [Hz]')
src.resolution_calc(Fs, NFFT)
return freqs, pxx
def window_idx(t):
return (Fs * t) // NFFT + 1
def spectrum_slice(freqs, Pxx, t):
fig, ax = plt.subplots(2, 1, figsize=(20, 8))
n = window_idx(t)
dB = 20 * np.log10(Pxx.T[n] / 0.000001)
ax[0].plot(freqs, dB) # 1 dB = 1 um/s^2
ax[0].grid(True)
ax[0].set_xlabel('Frequency [Hz]')
ax[0].set_ylabel('Amplitude [dB]')
ax[1].plot(freqs, Pxx.T[n])
ax[1].grid(True)
ax[1].set_xlabel('Frequency [Hz]')
ax[1].set_ylabel('Amplitude [m/s^2]')
return n
def get_max_frequency(freqs, Pxx, i):
max_freq = freqs[np.argmax(Pxx.T[i])]
return max_freq
def get_peaks(freqs, Pxx, i, top=5):
amplitudes = Pxx.T[i]
peaks, _ = find_peaks(amplitudes, distance=3)
fundamental = get_max_frequency(freqs, Pxx, i)
f_top = freqs[peaks[np.argsort(amplitudes[peaks])]][::-top]
y_top = np.sort(amplitudes[peaks])[::-top]
return pd.DataFrame({
'f': f_top,
'y': y_top,
'1x': f_top / fundamental
})
def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
b, a = butter(order, [lowcut, highcut], fs=fs, btype='band')
y = lfilter(b, a, data)
return y
def get_spectrograms(DATASET: List[pd.DataFrame], axis: str) -> list:
spectrograms = []
for name, ts in DATASET:
base_freq = fundamental_frequency(ts[axis], Fs)
display(Markdown(f'**{name}** *({axis.upper()} axis, Fundamental = {base_freq:.4f} Hz)*'))
freqs, Pxx = spectogram(ts['x'])
spectrograms.append((name, freqs, Pxx))
plt.show() # plt.savefig(f'x_axis_fft_{NFFT}.png')
return spectrograms
def show_spectrogram_detail(spectrograms: list, axis: str, t: float):
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = spectrum_slice(freqs, Pxx, t)
# Incorrect fundamental frequency:
# print(fdiscovery.harmonic_product_spectrum(freqs, Pxx.T[i_window]))
plt.show() #plt.savefig(f'x_axis_fft_{NFFT}_at_{T_SEC}s.png')
def show_mms_peaks(spectrograms: list, axis: str, t: float):
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = window_idx(t)
peaks = fdiscovery.mms_peak_finder(Pxx.T[i_window])
fig, ax = plt.subplots(1, 1, figsize=(15, 3))
ax.grid(True)
ax.plot(freqs, Pxx.T[i_window])
ax.scatter(freqs[peaks], Pxx.T[i_window][peaks], marker='^', color='red')
ax.set_xlabel('Frequency [Hz]')
plt.show()
def show_harmonic_series(spectrograms: list, axis: str, t: float):
# https://stackoverflow.com/questions/1982770/changing-the-color-of-an-axis
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = window_idx(t)
h_series = fdiscovery.harmonic_series_detection(freqs, Pxx.T[i_window], Fs, NFFT)
# Find best (sum of harmonics' amplitudes in the largest)
max_harmonic_amp_idx = np.argmax([
sum([h[1] for h in s]) / len(s)
for s in h_series
])
best_harmonic_series = pd.DataFrame(
h_series[max_harmonic_amp_idx],
columns=['Frequency [Hz]', 'Amplitude [m/s^2]']
)
best_harmonic_series.index += 1
display(tabulate(best_harmonic_series, headers='keys', tablefmt='html'))
# Plot found harmonic series
fig, ax = plt.subplots(1, 8, figsize=(30, 4))
for i in range(8):
s = h_series[i+1]
if i == max_harmonic_amp_idx:
ax[i].xaxis.label.set_color('red')
ax[i].plot(freqs, Pxx.T[i_window])
ax[i].scatter([x[0] for x in s], [x[1] for x in s], marker='^', color='red')
ax[i].set_xlabel('Frequency [Hz]')
plt.show()
def show_spectra_largest_amplitudes(spectrograms: list, axis: str, t: float):
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = window_idx(t)
x_fundamental = get_max_frequency(freqs, Pxx, i_window)
peaks = get_peaks(freqs, Pxx, i_window)
display(Markdown(f'- *Fundamental frequency:* {x_fundamental} Hz'))
display(tabulate(peaks.head(5), headers='keys', tablefmt='html'))
Spectrogram in X axis
x_spectra = get_spectrograms(DATASET, 'x')
high_pressure_pump_40percent__1.tsv (X axis, Fundamental = 25.5408 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_40percent__2.tsv (X axis, Fundamental = 25.4943 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_40percent_speed_up__3.tsv (X axis, Fundamental = 47.8300 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_80percent__4.tsv (X axis, Fundamental = 47.5881 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_shc2_klima4_bad.tsv (X axis, Fundamental = 0.0251 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_shc2_klima5_good.tsv (X axis, Fundamental = 28.8702 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_1.tsv (X axis, Fundamental = 47.9129 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_2.tsv (X axis, Fundamental = 49.4398 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_3.tsv (X axis, Fundamental = 48.6810 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_base.tsv (X axis, Fundamental = 48.8258 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_side.tsv (X axis, Fundamental = 49.6205 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
Spectrogram detail in X axis
show_spectrogram_detail(x_spectra, 'x', T_SEC)
high_pressure_pump_40percent__1.tsv (X axis @ 5s)
high_pressure_pump_40percent__2.tsv (X axis @ 5s)
high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)
high_pressure_pump_80percent__4.tsv (X axis @ 5s)
compressor_shc2_klima4_bad.tsv (X axis @ 5s)
compressor_shc2_klima5_good.tsv (X axis @ 5s)
compressor_top_1.tsv (X axis @ 5s)
compressor_top_2.tsv (X axis @ 5s)
compressor_top_3.tsv (X axis @ 5s)
compressor_base.tsv (X axis @ 5s)
compressor_side.tsv (X axis @ 5s)
Peaks in frequency spectrum in X axis
- MMS peak finder algorithm
show_mms_peaks(x_spectra, 'x', T_SEC)
high_pressure_pump_40percent__1.tsv (X axis @ 5s)
high_pressure_pump_40percent__2.tsv (X axis @ 5s)
high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)
high_pressure_pump_80percent__4.tsv (X axis @ 5s)
compressor_shc2_klima4_bad.tsv (X axis @ 5s)
compressor_shc2_klima5_good.tsv (X axis @ 5s)
compressor_top_1.tsv (X axis @ 5s)
compressor_top_2.tsv (X axis @ 5s)
compressor_top_3.tsv (X axis @ 5s)
compressor_base.tsv (X axis @ 5s)
compressor_side.tsv (X axis @ 5s)
Harmonic series detection in X axis
show_harmonic_series(x_spectra, 'x', T_SEC)
high_pressure_pump_40percent__1.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 20.3906 | 0.0146296 |
| 2 | 43.0469 | 0.0164909 |
| 3 | 56.6406 | 0.0124512 |
| 4 | 79.2969 | 0.00816218 |
| 5 | 122.344 | 0.00463894 |
| 6 | 160.859 | 0.0106926 |
| 7 | 380.625 | 0.00167143 |
high_pressure_pump_40percent__2.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 11.3281 | 0.00480457 |
| 2 | 24.9219 | 0.00642867 |
| 3 | 31.7188 | 0.00817352 |
| 4 | 43.0469 | 0.0144605 |
| 5 | 65.7031 | 0.0138305 |
| 6 | 77.0312 | 0.00369309 |
| 7 | 142.734 | 0.00450612 |
| 8 | 154.062 | 0.00269428 |
high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 18.125 | 0.00644368 |
| 2 | 52.1094 | 0.0292742 |
| 3 | 72.5 | 0.0186523 |
| 4 | 106.484 | 0.0102005 |
| 5 | 197.109 | 0.00354446 |
| 6 | 287.734 | 0.00405812 |
high_pressure_pump_80percent__4.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 24.9219 | 0.0209609 |
| 2 | 47.5781 | 0.40815 |
| 3 | 95.1562 | 0.684107 |
| 4 | 120.078 | 0.00876636 |
| 5 | 142.734 | 0.025571 |
| 6 | 552.812 | 0.008082 |
compressor_shc2_klima4_bad.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 154.062 | 0.0283792 |
| 2 | 308.125 | 0.010593 |
| 3 | 462.188 | 0.0145172 |
compressor_shc2_klima5_good.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 52.1094 | 0.0646617 |
| 2 | 104.219 | 0.00945951 |
| 3 | 156.328 | 0.054688 |
| 4 | 208.438 | 0.0174424 |
| 5 | 260.547 | 0.00557364 |
| 6 | 364.766 | 0.00482011 |
compressor_top_1.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 47.5781 | 0.766224 |
| 2 | 145 | 0.0602588 |
| 3 | 188.047 | 0.0153765 |
| 4 | 233.359 | 0.016698 |
| 5 | 471.25 | 0.0187228 |
compressor_top_2.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.825486 |
| 2 | 99.6875 | 0.0560163 |
| 3 | 149.531 | 0.0794685 |
| 4 | 199.375 | 0.0667731 |
| 5 | 292.266 | 0.0140927 |
| 6 | 489.375 | 0.0125749 |
| 7 | 539.219 | 0.0171051 |
compressor_top_3.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 1.00669 |
| 2 | 99.6875 | 0.0744555 |
| 3 | 149.531 | 0.0771403 |
| 4 | 199.375 | 0.0800229 |
| 5 | 294.531 | 0.059878 |
compressor_base.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.921125 |
| 2 | 99.6875 | 0.0602615 |
| 3 | 149.531 | 0.0606726 |
| 4 | 199.375 | 0.0462516 |
| 5 | 292.266 | 0.00746856 |
compressor_side.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.605295 |
| 2 | 99.6875 | 0.16705 |
| 3 | 149.531 | 0.122099 |
| 4 | 199.375 | 0.0740995 |
| 5 | 536.953 | 0.018745 |
show_spectra_largest_amplitudes(x_spectra, 'x', T_SEC)
high_pressure_pump_40percent__1.tsv (X axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.0375268 | 1 |
| 1 | 6.79688 | 0.0114317 | 0.136364 |
| 2 | 36.25 | 0.00690706 | 0.727273 |
| 3 | 131.406 | 0.00515057 | 2.63636 |
| 4 | 233.359 | 0.00409289 | 4.68182 |
high_pressure_pump_40percent__2.tsv (X axis @ 5s)
- Fundamental frequency: 43.046875 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 43.0469 | 0.0144605 | 1 |
| 1 | 24.9219 | 0.00642867 | 0.578947 |
| 2 | 11.3281 | 0.00480457 | 0.263158 |
| 3 | 380.625 | 0.00380404 | 8.84211 |
| 4 | 226.562 | 0.00309202 | 5.26316 |
high_pressure_pump_40percent_speed_up__3.tsv (X axis @ 5s)
- Fundamental frequency: 52.109375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 52.1094 | 0.0292742 | 1 |
| 1 | 27.1875 | 0.00880891 | 0.521739 |
| 2 | 457.656 | 0.00643 | 8.78261 |
| 3 | 546.016 | 0.00498029 | 10.4783 |
| 4 | 337.578 | 0.00466762 | 6.47826 |
high_pressure_pump_80percent__4.tsv (X axis @ 5s)
- Fundamental frequency: 95.15625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 95.1562 | 0.684107 | 1 |
| 1 | 15.8594 | 0.0483113 | 0.166667 |
| 2 | 475.781 | 0.0287978 | 5 |
| 3 | 396.484 | 0.0242131 | 4.16667 |
| 4 | 457.656 | 0.0197323 | 4.80952 |
compressor_shc2_klima4_bad.tsv (X axis @ 5s)
- Fundamental frequency: 360.234375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 360.234 | 0.0316232 | 1 |
| 1 | 29.4531 | 0.0136152 | 0.081761 |
| 2 | 514.297 | 0.00654999 | 1.42767 |
| 3 | 353.438 | 0.00428734 | 0.981132 |
| 4 | 410.078 | 0.00351766 | 1.13836 |
compressor_shc2_klima5_good.tsv (X axis @ 5s)
- Fundamental frequency: 52.109375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 52.1094 | 0.0646617 | 1 |
| 1 | 6.79688 | 0.00821841 | 0.130435 |
| 2 | 260.547 | 0.00557364 | 5 |
| 3 | 364.766 | 0.00482011 | 7 |
| 4 | 65.7031 | 0.00368113 | 1.26087 |
compressor_top_1.tsv (X axis @ 5s)
- Fundamental frequency: 47.578125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 47.5781 | 0.766224 | 1 |
| 1 | 339.844 | 0.0890469 | 7.14286 |
| 2 | 145 | 0.0602588 | 3.04762 |
| 3 | 346.641 | 0.027358 | 7.28571 |
| 4 | 104.219 | 0.0223045 | 2.19048 |
compressor_top_2.tsv (X axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.825486 | 1 |
| 1 | 548.281 | 0.117761 | 11 |
| 2 | 249.219 | 0.0457725 | 5 |
| 3 | 240.156 | 0.0205001 | 4.81818 |
| 4 | 323.984 | 0.0182378 | 6.5 |
compressor_top_3.tsv (X axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 1.00669 | 1 |
| 1 | 348.906 | 0.116427 | 7 |
| 2 | 249.219 | 0.0341733 | 5 |
| 3 | 142.734 | 0.0277731 | 2.86364 |
| 4 | 206.172 | 0.0205308 | 4.13636 |
compressor_base.tsv (X axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.921125 | 1 |
| 1 | 348.906 | 0.0496577 | 7 |
| 2 | 398.75 | 0.0371128 | 8 |
| 3 | 410.078 | 0.0186843 | 8.22727 |
| 4 | 163.125 | 0.00976747 | 3.27273 |
compressor_side.tsv (X axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.605295 | 1 |
| 1 | 346.641 | 0.157153 | 6.95455 |
| 2 | 308.125 | 0.0514137 | 6.18182 |
| 3 | 536.953 | 0.018745 | 10.7727 |
| 4 | 369.297 | 0.015345 | 7.40909 |
Spectrogram in Y axis
y_spectra = get_spectrograms(DATASET, 'y')
high_pressure_pump_40percent__1.tsv (Y axis, Fundamental = 0.0299 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_40percent__2.tsv (Y axis, Fundamental = 33.1799 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_40percent_speed_up__3.tsv (Y axis, Fundamental = 0.0306 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_80percent__4.tsv (Y axis, Fundamental = 0.0625 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_shc2_klima4_bad.tsv (Y axis, Fundamental = 50.9893 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_shc2_klima5_good.tsv (Y axis, Fundamental = 50.4216 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_1.tsv (Y axis, Fundamental = 47.9129 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_2.tsv (Y axis, Fundamental = 49.4398 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_3.tsv (Y axis, Fundamental = 48.6810 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_base.tsv (Y axis, Fundamental = 48.8258 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_side.tsv (Y axis, Fundamental = 49.6205 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
Spectrogram detail in Y axis
show_spectrogram_detail(y_spectra, 'y', T_SEC)
high_pressure_pump_40percent__1.tsv (Y axis @ 5s)
high_pressure_pump_40percent__2.tsv (Y axis @ 5s)
high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)
high_pressure_pump_80percent__4.tsv (Y axis @ 5s)
compressor_shc2_klima4_bad.tsv (Y axis @ 5s)
compressor_shc2_klima5_good.tsv (Y axis @ 5s)
compressor_top_1.tsv (Y axis @ 5s)
compressor_top_2.tsv (Y axis @ 5s)
compressor_top_3.tsv (Y axis @ 5s)
compressor_base.tsv (Y axis @ 5s)
compressor_side.tsv (Y axis @ 5s)
Peaks in frequency spectrum in Y axis
show_mms_peaks(y_spectra, 'y', T_SEC)
high_pressure_pump_40percent__1.tsv (Y axis @ 5s)
high_pressure_pump_40percent__2.tsv (Y axis @ 5s)
high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)
high_pressure_pump_80percent__4.tsv (Y axis @ 5s)
compressor_shc2_klima4_bad.tsv (Y axis @ 5s)
compressor_shc2_klima5_good.tsv (Y axis @ 5s)
compressor_top_1.tsv (Y axis @ 5s)
compressor_top_2.tsv (Y axis @ 5s)
compressor_top_3.tsv (Y axis @ 5s)
compressor_base.tsv (Y axis @ 5s)
compressor_side.tsv (Y axis @ 5s)
Harmonic series detection in Y axis
show_harmonic_series(y_spectra, 'y', T_SEC)
high_pressure_pump_40percent__1.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 20.3906 | 0.0146296 |
| 2 | 43.0469 | 0.0164909 |
| 3 | 56.6406 | 0.0124512 |
| 4 | 79.2969 | 0.00816218 |
| 5 | 122.344 | 0.00463894 |
| 6 | 160.859 | 0.0106926 |
| 7 | 380.625 | 0.00167143 |
high_pressure_pump_40percent__2.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 11.3281 | 0.00480457 |
| 2 | 24.9219 | 0.00642867 |
| 3 | 31.7188 | 0.00817352 |
| 4 | 43.0469 | 0.0144605 |
| 5 | 65.7031 | 0.0138305 |
| 6 | 77.0312 | 0.00369309 |
| 7 | 142.734 | 0.00450612 |
| 8 | 154.062 | 0.00269428 |
high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 18.125 | 0.00644368 |
| 2 | 52.1094 | 0.0292742 |
| 3 | 72.5 | 0.0186523 |
| 4 | 106.484 | 0.0102005 |
| 5 | 197.109 | 0.00354446 |
| 6 | 287.734 | 0.00405812 |
high_pressure_pump_80percent__4.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 24.9219 | 0.0209609 |
| 2 | 47.5781 | 0.40815 |
| 3 | 95.1562 | 0.684107 |
| 4 | 120.078 | 0.00876636 |
| 5 | 142.734 | 0.025571 |
| 6 | 552.812 | 0.008082 |
compressor_shc2_klima4_bad.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 154.062 | 0.0283792 |
| 2 | 308.125 | 0.010593 |
| 3 | 462.188 | 0.0145172 |
compressor_shc2_klima5_good.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 52.1094 | 0.0646617 |
| 2 | 104.219 | 0.00945951 |
| 3 | 156.328 | 0.054688 |
| 4 | 208.438 | 0.0174424 |
| 5 | 260.547 | 0.00557364 |
| 6 | 364.766 | 0.00482011 |
compressor_top_1.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 47.5781 | 0.766224 |
| 2 | 145 | 0.0602588 |
| 3 | 188.047 | 0.0153765 |
| 4 | 233.359 | 0.016698 |
| 5 | 471.25 | 0.0187228 |
compressor_top_2.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.825486 |
| 2 | 99.6875 | 0.0560163 |
| 3 | 149.531 | 0.0794685 |
| 4 | 199.375 | 0.0667731 |
| 5 | 292.266 | 0.0140927 |
| 6 | 489.375 | 0.0125749 |
| 7 | 539.219 | 0.0171051 |
compressor_top_3.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 1.00669 |
| 2 | 99.6875 | 0.0744555 |
| 3 | 149.531 | 0.0771403 |
| 4 | 199.375 | 0.0800229 |
| 5 | 294.531 | 0.059878 |
compressor_base.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.921125 |
| 2 | 99.6875 | 0.0602615 |
| 3 | 149.531 | 0.0606726 |
| 4 | 199.375 | 0.0462516 |
| 5 | 292.266 | 0.00746856 |
compressor_side.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.605295 |
| 2 | 99.6875 | 0.16705 |
| 3 | 149.531 | 0.122099 |
| 4 | 199.375 | 0.0740995 |
| 5 | 536.953 | 0.018745 |
show_spectra_largest_amplitudes(y_spectra, 'y', T_SEC)
high_pressure_pump_40percent__1.tsv (Y axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.0375268 | 1 |
| 1 | 6.79688 | 0.0114317 | 0.136364 |
| 2 | 36.25 | 0.00690706 | 0.727273 |
| 3 | 131.406 | 0.00515057 | 2.63636 |
| 4 | 233.359 | 0.00409289 | 4.68182 |
high_pressure_pump_40percent__2.tsv (Y axis @ 5s)
- Fundamental frequency: 43.046875 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 43.0469 | 0.0144605 | 1 |
| 1 | 24.9219 | 0.00642867 | 0.578947 |
| 2 | 11.3281 | 0.00480457 | 0.263158 |
| 3 | 380.625 | 0.00380404 | 8.84211 |
| 4 | 226.562 | 0.00309202 | 5.26316 |
high_pressure_pump_40percent_speed_up__3.tsv (Y axis @ 5s)
- Fundamental frequency: 52.109375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 52.1094 | 0.0292742 | 1 |
| 1 | 27.1875 | 0.00880891 | 0.521739 |
| 2 | 457.656 | 0.00643 | 8.78261 |
| 3 | 546.016 | 0.00498029 | 10.4783 |
| 4 | 337.578 | 0.00466762 | 6.47826 |
high_pressure_pump_80percent__4.tsv (Y axis @ 5s)
- Fundamental frequency: 95.15625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 95.1562 | 0.684107 | 1 |
| 1 | 15.8594 | 0.0483113 | 0.166667 |
| 2 | 475.781 | 0.0287978 | 5 |
| 3 | 396.484 | 0.0242131 | 4.16667 |
| 4 | 457.656 | 0.0197323 | 4.80952 |
compressor_shc2_klima4_bad.tsv (Y axis @ 5s)
- Fundamental frequency: 360.234375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 360.234 | 0.0316232 | 1 |
| 1 | 29.4531 | 0.0136152 | 0.081761 |
| 2 | 514.297 | 0.00654999 | 1.42767 |
| 3 | 353.438 | 0.00428734 | 0.981132 |
| 4 | 410.078 | 0.00351766 | 1.13836 |
compressor_shc2_klima5_good.tsv (Y axis @ 5s)
- Fundamental frequency: 52.109375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 52.1094 | 0.0646617 | 1 |
| 1 | 6.79688 | 0.00821841 | 0.130435 |
| 2 | 260.547 | 0.00557364 | 5 |
| 3 | 364.766 | 0.00482011 | 7 |
| 4 | 65.7031 | 0.00368113 | 1.26087 |
compressor_top_1.tsv (Y axis @ 5s)
- Fundamental frequency: 47.578125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 47.5781 | 0.766224 | 1 |
| 1 | 339.844 | 0.0890469 | 7.14286 |
| 2 | 145 | 0.0602588 | 3.04762 |
| 3 | 346.641 | 0.027358 | 7.28571 |
| 4 | 104.219 | 0.0223045 | 2.19048 |
compressor_top_2.tsv (Y axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.825486 | 1 |
| 1 | 548.281 | 0.117761 | 11 |
| 2 | 249.219 | 0.0457725 | 5 |
| 3 | 240.156 | 0.0205001 | 4.81818 |
| 4 | 323.984 | 0.0182378 | 6.5 |
compressor_top_3.tsv (Y axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 1.00669 | 1 |
| 1 | 348.906 | 0.116427 | 7 |
| 2 | 249.219 | 0.0341733 | 5 |
| 3 | 142.734 | 0.0277731 | 2.86364 |
| 4 | 206.172 | 0.0205308 | 4.13636 |
compressor_base.tsv (Y axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.921125 | 1 |
| 1 | 348.906 | 0.0496577 | 7 |
| 2 | 398.75 | 0.0371128 | 8 |
| 3 | 410.078 | 0.0186843 | 8.22727 |
| 4 | 163.125 | 0.00976747 | 3.27273 |
compressor_side.tsv (Y axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.605295 | 1 |
| 1 | 346.641 | 0.157153 | 6.95455 |
| 2 | 308.125 | 0.0514137 | 6.18182 |
| 3 | 536.953 | 0.018745 | 10.7727 |
| 4 | 369.297 | 0.015345 | 7.40909 |
Spectrogram in Z axis
z_spectra = get_spectrograms(DATASET, 'z')
high_pressure_pump_40percent__1.tsv (Z axis, Fundamental = 0.0299 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_40percent__2.tsv (Z axis, Fundamental = 25.3960 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_40percent_speed_up__3.tsv (Z axis, Fundamental = 47.8300 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
high_pressure_pump_80percent__4.tsv (Z axis, Fundamental = 47.5881 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_shc2_klima4_bad.tsv (Z axis, Fundamental = 50.2110 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_shc2_klima5_good.tsv (Z axis, Fundamental = 50.4890 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_1.tsv (Z axis, Fundamental = 0.0551 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_2.tsv (Z axis, Fundamental = 49.4398 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_top_3.tsv (Z axis, Fundamental = 48.6810 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_base.tsv (Z axis, Fundamental = 48.8258 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
compressor_side.tsv (Z axis, Fundamental = 49.6205 Hz)
Window size: 512 Heinsenberg box Time step: 441.37931034482756 ms Frequency step: 2.265625 Hz
Spectrogram detail in Z axis
show_spectrogram_detail(z_spectra, 'z', T_SEC)
high_pressure_pump_40percent__1.tsv (Z axis @ 5s)
high_pressure_pump_40percent__2.tsv (Z axis @ 5s)
high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)
high_pressure_pump_80percent__4.tsv (Z axis @ 5s)
compressor_shc2_klima4_bad.tsv (Z axis @ 5s)
compressor_shc2_klima5_good.tsv (Z axis @ 5s)
compressor_top_1.tsv (Z axis @ 5s)
compressor_top_2.tsv (Z axis @ 5s)
compressor_top_3.tsv (Z axis @ 5s)
compressor_base.tsv (Z axis @ 5s)
compressor_side.tsv (Z axis @ 5s)
Peaks in frequency spectrum in Z axis
show_mms_peaks(z_spectra, 'z', T_SEC)
high_pressure_pump_40percent__1.tsv (Z axis @ 5s)
high_pressure_pump_40percent__2.tsv (Z axis @ 5s)
high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)
high_pressure_pump_80percent__4.tsv (Z axis @ 5s)
compressor_shc2_klima4_bad.tsv (Z axis @ 5s)
compressor_shc2_klima5_good.tsv (Z axis @ 5s)
compressor_top_1.tsv (Z axis @ 5s)
compressor_top_2.tsv (Z axis @ 5s)
compressor_top_3.tsv (Z axis @ 5s)
compressor_base.tsv (Z axis @ 5s)
compressor_side.tsv (Z axis @ 5s)
Harmonic series detection in Z axis
show_harmonic_series(z_spectra, 'z', T_SEC)
high_pressure_pump_40percent__1.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 20.3906 | 0.0146296 |
| 2 | 43.0469 | 0.0164909 |
| 3 | 56.6406 | 0.0124512 |
| 4 | 79.2969 | 0.00816218 |
| 5 | 122.344 | 0.00463894 |
| 6 | 160.859 | 0.0106926 |
| 7 | 380.625 | 0.00167143 |
high_pressure_pump_40percent__2.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 11.3281 | 0.00480457 |
| 2 | 24.9219 | 0.00642867 |
| 3 | 31.7188 | 0.00817352 |
| 4 | 43.0469 | 0.0144605 |
| 5 | 65.7031 | 0.0138305 |
| 6 | 77.0312 | 0.00369309 |
| 7 | 142.734 | 0.00450612 |
| 8 | 154.062 | 0.00269428 |
high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 18.125 | 0.00644368 |
| 2 | 52.1094 | 0.0292742 |
| 3 | 72.5 | 0.0186523 |
| 4 | 106.484 | 0.0102005 |
| 5 | 197.109 | 0.00354446 |
| 6 | 287.734 | 0.00405812 |
high_pressure_pump_80percent__4.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 24.9219 | 0.0209609 |
| 2 | 47.5781 | 0.40815 |
| 3 | 95.1562 | 0.684107 |
| 4 | 120.078 | 0.00876636 |
| 5 | 142.734 | 0.025571 |
| 6 | 552.812 | 0.008082 |
compressor_shc2_klima4_bad.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 154.062 | 0.0283792 |
| 2 | 308.125 | 0.010593 |
| 3 | 462.188 | 0.0145172 |
compressor_shc2_klima5_good.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 52.1094 | 0.0646617 |
| 2 | 104.219 | 0.00945951 |
| 3 | 156.328 | 0.054688 |
| 4 | 208.438 | 0.0174424 |
| 5 | 260.547 | 0.00557364 |
| 6 | 364.766 | 0.00482011 |
compressor_top_1.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 47.5781 | 0.766224 |
| 2 | 145 | 0.0602588 |
| 3 | 188.047 | 0.0153765 |
| 4 | 233.359 | 0.016698 |
| 5 | 471.25 | 0.0187228 |
compressor_top_2.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.825486 |
| 2 | 99.6875 | 0.0560163 |
| 3 | 149.531 | 0.0794685 |
| 4 | 199.375 | 0.0667731 |
| 5 | 292.266 | 0.0140927 |
| 6 | 489.375 | 0.0125749 |
| 7 | 539.219 | 0.0171051 |
compressor_top_3.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 1.00669 |
| 2 | 99.6875 | 0.0744555 |
| 3 | 149.531 | 0.0771403 |
| 4 | 199.375 | 0.0800229 |
| 5 | 294.531 | 0.059878 |
compressor_base.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.921125 |
| 2 | 99.6875 | 0.0602615 |
| 3 | 149.531 | 0.0606726 |
| 4 | 199.375 | 0.0462516 |
| 5 | 292.266 | 0.00746856 |
compressor_side.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 49.8438 | 0.605295 |
| 2 | 99.6875 | 0.16705 |
| 3 | 149.531 | 0.122099 |
| 4 | 199.375 | 0.0740995 |
| 5 | 536.953 | 0.018745 |
show_spectra_largest_amplitudes(z_spectra, 'z', T_SEC)
high_pressure_pump_40percent__1.tsv (Z axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.0375268 | 1 |
| 1 | 6.79688 | 0.0114317 | 0.136364 |
| 2 | 36.25 | 0.00690706 | 0.727273 |
| 3 | 131.406 | 0.00515057 | 2.63636 |
| 4 | 233.359 | 0.00409289 | 4.68182 |
high_pressure_pump_40percent__2.tsv (Z axis @ 5s)
- Fundamental frequency: 43.046875 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 43.0469 | 0.0144605 | 1 |
| 1 | 24.9219 | 0.00642867 | 0.578947 |
| 2 | 11.3281 | 0.00480457 | 0.263158 |
| 3 | 380.625 | 0.00380404 | 8.84211 |
| 4 | 226.562 | 0.00309202 | 5.26316 |
high_pressure_pump_40percent_speed_up__3.tsv (Z axis @ 5s)
- Fundamental frequency: 52.109375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 52.1094 | 0.0292742 | 1 |
| 1 | 27.1875 | 0.00880891 | 0.521739 |
| 2 | 457.656 | 0.00643 | 8.78261 |
| 3 | 546.016 | 0.00498029 | 10.4783 |
| 4 | 337.578 | 0.00466762 | 6.47826 |
high_pressure_pump_80percent__4.tsv (Z axis @ 5s)
- Fundamental frequency: 95.15625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 95.1562 | 0.684107 | 1 |
| 1 | 15.8594 | 0.0483113 | 0.166667 |
| 2 | 475.781 | 0.0287978 | 5 |
| 3 | 396.484 | 0.0242131 | 4.16667 |
| 4 | 457.656 | 0.0197323 | 4.80952 |
compressor_shc2_klima4_bad.tsv (Z axis @ 5s)
- Fundamental frequency: 360.234375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 360.234 | 0.0316232 | 1 |
| 1 | 29.4531 | 0.0136152 | 0.081761 |
| 2 | 514.297 | 0.00654999 | 1.42767 |
| 3 | 353.438 | 0.00428734 | 0.981132 |
| 4 | 410.078 | 0.00351766 | 1.13836 |
compressor_shc2_klima5_good.tsv (Z axis @ 5s)
- Fundamental frequency: 52.109375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 52.1094 | 0.0646617 | 1 |
| 1 | 6.79688 | 0.00821841 | 0.130435 |
| 2 | 260.547 | 0.00557364 | 5 |
| 3 | 364.766 | 0.00482011 | 7 |
| 4 | 65.7031 | 0.00368113 | 1.26087 |
compressor_top_1.tsv (Z axis @ 5s)
- Fundamental frequency: 47.578125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 47.5781 | 0.766224 | 1 |
| 1 | 339.844 | 0.0890469 | 7.14286 |
| 2 | 145 | 0.0602588 | 3.04762 |
| 3 | 346.641 | 0.027358 | 7.28571 |
| 4 | 104.219 | 0.0223045 | 2.19048 |
compressor_top_2.tsv (Z axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.825486 | 1 |
| 1 | 548.281 | 0.117761 | 11 |
| 2 | 249.219 | 0.0457725 | 5 |
| 3 | 240.156 | 0.0205001 | 4.81818 |
| 4 | 323.984 | 0.0182378 | 6.5 |
compressor_top_3.tsv (Z axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 1.00669 | 1 |
| 1 | 348.906 | 0.116427 | 7 |
| 2 | 249.219 | 0.0341733 | 5 |
| 3 | 142.734 | 0.0277731 | 2.86364 |
| 4 | 206.172 | 0.0205308 | 4.13636 |
compressor_base.tsv (Z axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.921125 | 1 |
| 1 | 348.906 | 0.0496577 | 7 |
| 2 | 398.75 | 0.0371128 | 8 |
| 3 | 410.078 | 0.0186843 | 8.22727 |
| 4 | 163.125 | 0.00976747 | 3.27273 |
compressor_side.tsv (Z axis @ 5s)
- Fundamental frequency: 49.84375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 49.8438 | 0.605295 | 1 |
| 1 | 346.641 | 0.157153 | 6.95455 |
| 2 | 308.125 | 0.0514137 | 6.18182 |
| 3 | 536.953 | 0.018745 | 10.7727 |
| 4 | 369.297 | 0.015345 | 7.40909 |
Histogram
axis = ['x', 'y', 'z']
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ts[axis].hist(figsize=(10, 5), grid=True, bins=50)
plt.show()
high_pressure_pump_40percent__1.tsv
high_pressure_pump_40percent__2.tsv
high_pressure_pump_40percent_speed_up__3.tsv
high_pressure_pump_80percent__4.tsv
compressor_shc2_klima4_bad.tsv
compressor_shc2_klima5_good.tsv
compressor_top_1.tsv
compressor_top_2.tsv
compressor_top_3.tsv
compressor_base.tsv
compressor_side.tsv
Orbitals of all cross sections
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
fig, ax = plt.subplots(1, 3, figsize=(20, 4))
for i, col in enumerate([('x', 'y'), ('x', 'z'), ('y', 'z')]):
ax[i].scatter(ts[col[0]], ts[col[1]], s=1)
ax[i].grid(True)
ax[i].set_xlabel(col[0].upper())
ax[i].set_ylabel(col[1].upper())
ax[i].grid(True)
plt.show() # plt.savefig('orbitals.png')
high_pressure_pump_40percent__1.tsv
high_pressure_pump_40percent__2.tsv
high_pressure_pump_40percent_speed_up__3.tsv
high_pressure_pump_80percent__4.tsv
compressor_shc2_klima4_bad.tsv
compressor_shc2_klima5_good.tsv
compressor_top_1.tsv
compressor_top_2.tsv
compressor_top_3.tsv
compressor_base.tsv
compressor_side.tsv
Orbitals of 1x harmonic frequency
x_spectra_by_name = {spec[0]: spec for spec in x_spectra}
y_spectra_by_name = {spec[0]: spec for spec in y_spectra}
z_spectra_by_name = {spec[0]: spec for spec in z_spectra}
t = 5
space = 5
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
fig, ax = plt.subplots(1, 3, figsize=(20, 4))
name, freqs, Pxx = x_spectra_by_name[name]
x_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))
name, freqs, Pxx = y_spectra_by_name[name]
y_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))
name, freqs, Pxx = z_spectra_by_name[name]
z_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))
ts['x_1x'] = butter_bandpass_filter(ts['x'], x_fundamental - space, x_fundamental + space, Fs)
ts['y_1x'] = butter_bandpass_filter(ts['y'], y_fundamental - space, y_fundamental + space, Fs)
ts['z_1x'] = butter_bandpass_filter(ts['z'], z_fundamental - space, z_fundamental + space, Fs)
for i, col in enumerate([('x_1x', 'y_1x'), ('x_1x', 'z_1x'), ('y_1x', 'z_1x')]):
ax[i].scatter(ts[col[0]], ts[col[1]], s=1)
ax[i].grid(True)
ax[i].set_xlabel(col[0].upper())
ax[i].set_ylabel(col[1].upper())
ax[i].grid(True)
plt.show() # plt.savefig('orbitals_1x.png')
high_pressure_pump_40percent__1.tsv
high_pressure_pump_40percent__2.tsv
high_pressure_pump_40percent_speed_up__3.tsv
high_pressure_pump_80percent__4.tsv
compressor_shc2_klima4_bad.tsv
compressor_shc2_klima5_good.tsv
compressor_top_1.tsv
compressor_top_2.tsv
compressor_top_3.tsv
compressor_base.tsv
compressor_side.tsv